20 NORMAL : VTAB 5: PRINT "LIFE IS THE 'GAME' INVENTED BY MATHEMA- <CTRL-J>TICIAN JOHN CONWAY. IT'S ENORMOUS <CTRL-J>POPULARITY HAS INSPIRED NUMEROUS 'LIFE' <CTRL-J>PROGRAMS."
30 PRINT "<CTRL-J><CTRL-J>THE FILE 'LIFE.*' IS YET ANOTHER OF <CTRL-J>THESE PROGRAMS, BUT ITS IMPLEMENTATION <CTRL-J>MAKES IT AN ENTIRE 'LIFE' SYSTEM <CTRL-J>ACTUALLY. THE INSTRUCTIONS FOR IT <CTRL-J>FOLLOW."
40 PRINT : GOSUB 1000
50 GOSUB 2000: VTAB 5: PRINT "'LIFE.*' HAS TWO OPERATION MODES, EDIT <CTRL-J>AND RUN. THE EDIT MODE IS USED TO SET <CTRL-J>UP THE BACTERIA THAT WILL BE LIVING, AND<CTRL-J>THE RUN MODE SETS THEM INTO LIFE. THE <CTRL-J>RULES FOR THE GAME 'LIFE' ARE NOT"
60 PRINT "<CTRL-J>COMPLICATED IN THE LEAST. ON THE NEXT <CTRL-J>PAGE IS A SHORT SYNOPSIS OF THOSE RULES.<CTRL-J>": VTAB 23: GOSUB 1000: GOSUB 2000: VTAB 5
65 PRINT "1) THE LIFE BOARD IS MADE UP OF A MATRIX OF WHATEVER SIZE YOU WOULD LIKE (40*48 FOR LIFE.*), AND THIS MATRIX HOLDS THE BACTERIA (THE LIFE CREATURES)"
66 PRINT : PRINT "2) A BACTERIA IS JUST A POINT THAT IS SET OR FILLED. THE BACTERIA REACT WITH OTHER BACTERIA OR WITH EMPY POINTS ACCORDING TO THE RULES IN 3) AND 4)."
70 PRINT : PRINT "3) A BACTERIA WILL LIVE IF IT HAS 2 OR 3 NEIGHBORS, BUT WILL DIE OF ISOL- ATION OR OVERPOPULATION IF THERE ARE LESS THAN 2 OR MORE THAN 3."
75 VTAB 23: GOSUB 1000: GOSUB 2000: VTAB 5
80 PRINT : PRINT "4) A BACTERIA WILL BE BORN IF THERE IS AN EMPTY POINT THAT HAS EXACLY THREE NEIGHBORS."
85 PRINT : PRINT
90 PRINT : PRINT "THAT'S IT! THESE RULES ARE SIMPLE, BUT <CTRL-J>THEY CAUSE THE BACTERIA TO REACT IN A <CTRL-J>WAY THAT IS TRULY AMAZING."
100 VTAB 23: GOSUB 1000: GOSUB 2000: VTAB 5
110 PRINT "NOW COME THE INSTRUCTIONS FOR THE PROGRAM.": PRINT : PRINT
120 PRINT "I,J,K,M : THESE COMMANDS MOVE THE EDIT- ING CURSOR AROUND THE SCREEN. IF PLOT MODE IS ON, THEY ALSO PLOT BEFORE THEY MOVE TO THE NEXT LOCAT- ION.": PRINT :
130 PRINT "<SPACE> : THE SPACE BAR TURNS PLOT MODE ON OR OFF. WHEN THE CURSOR IS MOVED WITH PLOT ON, BACTERIA WILL BE PUT INTO THE CELL IT JUST LEFT IF THAT CELL WAS EMPTY. IF IT WAS FILLED, IT WILL NOW BE CLEARED."
135 VTAB 23: GOSUB 1000: GOSUB 2000: VTAB 5: PRINT "F : FILLS ENTIRE MATRIX WITH BACTERIA.": PRINT : PRINT "C : COMPLEMENTS ENTIRE MATRIX. TURNS ALL THOSE THAT ARE ON OFF AND VICE- VERSA. (TO CLEAR SCREEN, HIT F AND THEN C.)": PRINT
140 PRINT "D : CATALOG (DIRECTORY) OF DISK THAT IS IN THE DRIVE. THIS IS USEFUL FOR FINDING THE RIGHT FILE."
150 PRINT : PRINT "T : SET TITLE TO PUT SCREEN UNDER. IF THERE WAS A TITLE SET PREVIOUSLY, IT WILL BE DISPLAYED AT THE TOP OF THE SCREEN. TITLE IS USED WHEN SAVING OR LOADING A SCREEN FROM DISK."
155 VTAB 23: GOSUB 1000: GOSUB 2000: VTAB 5: PRINT "S : SAVE SCREEN UNDER TITLE NAME. THIS OPTION AUTOMATICALLY ADDS A PREFIX TO DENOTE THAT THE FILE IS A 'LIFE' SCREEN, SO DON'T ADD IT OR ANY PREFIX AT ALL."
160 PRINT : PRINT "R : RESTORE SCREEN UNDER TITLE NAME FROM DISK. AGAIN, DON'T ADD THE PREFIX.": PRINT : PRINT "Q : GIVES YOU THE OPTION TO GET OUT OF LIFE. IF YOU HIT RESET NOW, IT WILL BOOT THE DISK (OTHERWISE RESET JUST"
165 PRINT " GOES TO EDIT MODE) <ESC> WILL LEAVE THE QUIT OPTION AND YOU WILL HAVE THE SCREEN YOU QUIT AT STILL."
170 VTAB 23: GOSUB 1000: GOSUB 2000: VTAB 5
180 PRINT "<ESC> : ESCAPE GOES TO RUN MODE AND WILL START UP YOUR BACTERIA IN THE PROCESS OF LIVING.": PRINT : PRINT "ALL OF THOSE COMMANDS ARE FOR EDIT MODE.THERE ARE NO COMMANDS FOR RUN MODE EXCEPT THAT ANY KEY WILL PUT YOU BACK INEDIT MODE."
190 PRINT : PRINT "IF ALL BACTERIA DIE DURING RUN MODE, OR THE SCREEN STABILIZES AND NO MORE ARE BORN, YOU WILL BE PUT BACK INTO EDIT MODE. RESET AT ANY TIME WILL CLEAR THE SCREEN AND GO TO EDIT MODE."
200 VTAB 23: GOSUB 1000: GOSUB 2000: VTAB 5
210 PRINT "THAT'S JUST ABOUT IT! THE REASON THAT <CTRL-J>LIFE.* IS 'PROTECTED' THROUGH THE RESET <CTRL-J>VECTOR IS THAT LIFE.* USES SEVERAL <CTRL-J>REGISTERS THAT ARE CRUCIAL TO APPLESOFT"
220 PRINT "<CTRL-J>AND IF YOU WERE ABLE TO GET BACK INTO <CTRL-J>APPLESOFT, IT WOULD BE MESSED UP. THE <CTRL-J>BOOTING OF THE DISK CLEARS ALL OF THESE <CTRL-J>REGISTERS OUT NICELY.": PRINT : PRINT
230 VTAB 23: GOSUB 1000: GOSUB 2000: VTAB 5
240 PRINT "WHEN YOU HIT A KEY, LIFE.* WILL RUN. IS<CTRL-J>THIS ALL RIGHT? IF NOT, I WILL GO BACK<CTRL-J> TO SOFTDISK."
250 PRINT : PRINT : PRINT "LIFE OR SOFTDISK (L OR S) ";: GET A$: IF A$ < >"S" AND A$ < >"L" THEN 250
255 PRINT : PRINT
260 IF A$ = "S" THEN PRINT CHR$(4)"RUN MENU"
270 PRINT CHR$(4)"BRUN LIFE.*"
999 END
1000 INVERSE : HTAB 11: PRINT "HIT A KEY PLEASE";: WAIT -16384,128: POKE -16368,0: VTAB 23: FOR I = 1 TO 25: PRINT : NEXT : NORMAL : HOME : RETURN